Ad Widget

Collapse

Permission denied à la suppression d'un item via l'API

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mcmyst
    Member
    • Feb 2012
    • 72

    #1

    Permission denied à la suppression d'un item via l'API

    Bonjour à tous,

    Je rencontre un problème lorsque j'essai de supprimer un item via l'API zabbix, le serveur me retourne l'erreur Permission denied.
    L'utilisateur que j'utilise pour l'API est Super Admin et peux créer des hôtes/Groupes/item/Graph, supprimer des hôtes/Groupes mais pas des items aparement...

    Voici la requête:
    Code:
    {"params":
      {"itemids": ["27096"]},
      "jsonrpc": "2.0",
      "method": "item.delete",
      "auth": "ecbef1664a2728e338d32698efc90b0e",
      "id": 1}
    }
    
    {
      u'jsonrpc': u'2.0',
      u'id': 1,
      u'error': {
      u'message': u'Application error.',
      u'code': -32500,
      u'data': u'[ CItem::delete ] No permissions !'
      }
    }
    Je pense que le problème viens plutôt de ma reqête qui serait mal formée (mauvais paramètre ?).
    La documentation de l'API zabbix donne l'exemple suivant pour la suppression :
    Code:
    {
      "jsonrpc":"2.0",
      "method":"item.delete",
      "params":["107824",  "107825"],
      "auth":"3a57200802b24cda67c4e4010b50c065",
      "id":2
    }
    Pour info, j'utilise une librairie python pour dialoguer avec l'API.

    Merci d'avance pour vos réponses.
  • JBo
    Senior Member
    • Jan 2011
    • 310

    #2
    Bonjour,

    Je n'ai pas encore essayé de supprimer des éléments via l'API, je n'ai donc pas d'exemple qui marche.

    En revanche, je vois une différence entre la requête effectuée et l'exemple du manuel dans la définition de "params":
    Dans le manuel, la liste d'itemids est directement associée à "params" alors que dans ta requête elle est dans une structure imbriquée.
    Que ce passe-t-il si tu remplaces :
    Code:
     "params":   {"itemids": ["27096"]},
    par :

    Code:
    "params": ["27096"],
    Cordialement,
    JBo

    Comment

    • mcmyst
      Member
      • Feb 2012
      • 72

      #3
      Bien vue !!!!

      Voici la solution (en python, mais le principe sera la même pour d'autre language):
      Au lieux de :
      Code:
      delete_item = ["27096"]
      print zapi.item.delete({"itemids":delete_item})
      Il faut faire:
      Code:
      delete_item = ["27096"]
      print zapi.item.delete(delete_item)
      Merci beaucoup de ta réponse !
      Last edited by mcmyst; 16-05-2012, 11:31.

      Comment

      Working...